/*
 * @Author: hruomei
 // * @Title: 移动中台配置文件
 // * @Description: 本文件为中台统一配置文件，项目组的配置不允许放到这里，可以在appExtends文件中新增
                 (养成良好的习惯，配置打上注释哦~)，新增的配置会被合并至此
 * @CreateTime: 2019/05/31
 * @LastUpDateTime: 2020/04/23
 * @Version: V1.05
*/
import {
    extend
} from './api.js'
import myObject from '@/static/js/jscommon'
let defaultConf = {
    /**
     * @type {boolean} true|false
     * @description 是否移动中台APP，经过移动网关需要加对应的参数
     * 如果不使用移动中台网关或一元化相关服务，这里可以改为false
     */
    isEmmApp: false,


    /**
     * @type {boolean} true|false
     * 是否挂载到 iLink平台（数字中台）
     * 与iLink 实现单点登录
     */
    ToiLink: false,



    /**
     * @type {string} 'emm'|'your menuCode'
     * @description 发布的项目，默认是emm
     * 如果是独立打包的项目，则写对应的项目编码，以便区分消息推送和版本升级更新等
     */

    proCode: 'cm',


    /**
     * @type {string} '0'|'1'
     * @description 是否在登录接口中返回一元化的refreshToken以及accessToken
     * 默认为0，当传0时不返回一元化两个token,传1时返回返回一元化两个token
     */
    tokenFlag: '0',

    /**
     * @type {string} '0'|'1'
     * @description 打包前做配置修改，表示当前是灰度版本包还是正常版本包
     * 灰度版本 '1'   正常版本 '0'
     */
    curType: '0',

    /**
     * @type {string} 如"'|\""
     * @description 禁止提交的特殊字符，以|隔开
     * 在request.js中会做统一拦截，这个配置要非常小心，否则可能会拦截掉一些预期外的请求
     */
    injectRule: '', // 禁止提交的特殊字符，以|隔开

    /**
     * @type {string} 'FRAMEWORK_USERINFO_KEY'
     * @description 个人信息缓存键名
     * 请勿修改！！！
     */
    userInfoKey: 'FRAMEWORK_USERINFO_KEY', // 个人信息缓存键名

    /**
     * @type {reg} /^(?![A-Za-z]+$)(?![A-Z\d]+$)(?![A-Z\W]+$)(?![a-z\d]+$)(?![a-z\W]+$)(?![\d\W]+$)\S{8,}$/
     * @description 密码规则，修改密码功能会用到这个正则
     * 没有特殊需求，请勿修改！！！
     */
    passwordReg: /^(?![A-Za-z]+$)(?![A-Z\d]+$)(?![A-Z\W]+$)(?![a-z\d]+$)(?![a-z\W]+$)(?![\d\W]+$)\S{8,}$/, // 密码规则

    /**
     * @type {boolean} true|false
     * @description 是否显示广告页
     * 仅APP端生效，如果启用，请修改\hybrid\html\framework\advertisementPage，目前仅是一个示例
     */
    showAdvertise: false, // 是否显示广告页

    /**
     * @type {string | array} 'production' | ['production', 'development']
     * @description 在什么环境中记录日志，生产环境还是开发环境
     * 默认生产环境写入错误日志，避免在开发环境调试期间错误日志过多且影响性能
     * 如果需要在开发环境中记录错误日志，可以修改为 ['production', 'development']
     */
    errorLog: ['production', 'development'],

    /**
     * @type {boolean} true|false
     * @description 是否显示全局水印
     * 需要配合waterwark.js使用，仅H5端及APP端生效，目前中台代码已实现，如果不使用中台首页，需要仿照pages/framework/index实现
     */
    watermark: false, // 是否显示全局水印

    /**
     * @type {string} #f25762
     * @description 主题色
     * 框架很多组件和页面都用到了，并做了全局混入，可以通过this.themeColor获取到，但并不是全部，还有uni.scss中的$ly-theme-color
     */
    themeColor: '#f25762', // 主题色

    /**
     * @type {string} 'zh'|'en'|'ja'
     * @description 多语言
     * 目前中台使用的是中文，多语言仅仅提供了方案，并未在所有页面中实现一一对应的翻译；
     * 做了全局混入，可以通过this.lang获取到
     */
    lang: 'zh',

    /**
     * @type {string} '123456789'
     * @description 用于H5端模拟设备唯一标识符
     */
    deviceId: '123456789',

    /**
     * @type {array} []
     * @description 如果请求接口中检测到包含数组中某一项字段，将会在该接口的参数中注入一元化相关数据
     */
    mpApi: ['/mp/', 'wfengine', '/mp/org', '/upload/workflow/'],

    /**
     * @type {string} '1dc45d2252e34d5db74baf96ecad6a67'
     * @description 在首页获取应用列表接口中作为根路径参数传递给后台
     * 请勿修改！！！
     */
    appRootMenuId: '1dc45d2252e34d5db74baf96ecad6a67',

    /**
     * @type {object} {}
     * @description 应用图标映射关系，key-value,key即EMP中配置的移动中台应用列表中的配置的应用编码
     * 如果想覆盖，则可以在项目自定义配置中加入menu_icon: '/static/xxx/qc@2x.png',并在appExtends.js中引入改配置文件，详见《开发指南》
     */
    appIconList: {
        'mp231mssql': '/static/framework/app-icon/mp231mssql.png',
        'csmysql': '/static/framework/app-icon/csmysql.png',
        'csoracle': '/static/framework/app-icon/csoracle.png',
        'ygfw': '/static/framework/app-icon/ygfw.png',
        'ygfw1': '/static/framework/app-icon/ygfw.png',
        'pvdoa': '/static/framework/app-icon/pvdoa.png',
        'clw': '/static/framework/app-icon/yhg@2x.png',
        'gys': '/static/framework/app-icon/gys.png'
    },

    /**
     * @type {object} {}
     * @description 首页和登录页对应的路由
     * 这里的修改主要是因为一些项目需要使用到自己的页面当做首页或入口页，维护起来更简单
     */
    route: {
        index: '/pages/oa/index/index', //首页
        login: '/pages/oa/login/login',
        //
    },

    /**
     * @type {object} {}
     * @description 首页相关配置
     */
    indexPage: {
        bannerNum: 14, // 显示的banner数，最多10个
        speakerNum: 10, // 滚动公告数
        newsNum: 5, // 新闻列表数
    },

    /**
     * @type {array} []
     * @description 个人中心页,清除本地文件的同时需要清除的本地存储信息
     */
    removeCacheStorageKeyList: [
        'FRAMEWORK_IMAGE_CACHE_INFO'
    ],

    /**
     * @type {boolean} false !important
     * @description 主要作用是应用启动或热更新期间接收到的消息推送无法及时打开，需要等到启动完成并且热更新成功后才能打开
     * 这里只能设置为false
     */
    isAppReady: false
}

let appExtendConfg = {};
let targetConfg = extend(true, defaultConf, appExtendConfg);
Object.defineProperty(targetConfg, 'domain', {
	value: "", //前端开发环境
    configurable: false,
    writable: false
});
export default targetConfg;
